Computing devices, especially mobile devices, have advanced dramatically and now commonly allow for the installation of new applications to extend the functionality of the device. However, this openness and variety of available applications brings security risks and management issues, such as the risk of malware, as has been seen in the world of personal computers. These risks can be especially important to enterprises that allow its employees or users to use their mobile computing devices for business or work purposes.
To deal with these risks, many mobile device platforms have introduced various security architectures. Typically, in these security architectures, the mobile device platform is protected based on granting privileges to software, usually based on code signing. The access control decision to assign privileges to software processes is based either on code signing or on explicit user approval, or a combination thereof.
Unfortunately, these security features and the large number of applications can make it difficult for a user or enterprise to maintain their mobile computing device in proper working order. For example, if a certain piece of software becomes obsolete or has been upgraded, it can be difficult to efficiently distribute the upgrade. Designing the user interaction for upgrade or synchronization of applications without hampering usability and security can be tedious. Accordingly, it may be desirable to provide methods and systems that allow for the easy management and upgrade of securely installed software.